home *** CD-ROM | disk | FTP | other *** search
/ Aminet 40 / Aminet 40 (2000)(Schatztruhe)[!][Dec 2000].iso / Aminet / misc / emu / ATUtilities.lha / ATUtilities / FPU.asm < prev    next >
Assembly Source File  |  2000-09-26  |  3KB  |  236 lines

  1.  ; ATKeyboard 4.0 - FPU-Befehle für Schoner
  2.  
  3.    mc68881
  4.    public _XFlt
  5.    public _XDiv
  6.    public _XSin
  7.    public _XFix
  8.    public _XAdd
  9.    public _XAbs
  10.    public _XCos
  11.    public _XMul
  12.    public _XTan
  13.    public _XAtan
  14.    public _XSqrt
  15.  
  16.    public _DivS32
  17.    public _DivU32
  18.    public _MulS32
  19.    public _MulU32
  20.  
  21.    public _FPU
  22.    public _CPU
  23.    public _MathBase
  24.    public _MathTransBase
  25.  
  26.    public .mulu#
  27.    public .divs#
  28.    public .divu#
  29.  
  30. _MulS32:
  31.    move.l 4(sp),d0
  32.    move.l 8(sp),d1
  33.    tst.b _CPU
  34.    beq 1$
  35.    machine mc68020
  36.    muls.l d1,d0
  37.    machine mc68000
  38.    rts
  39. 1$:
  40.    jsr .mulu#  ; .mulu# !!!!
  41.    rts
  42.  
  43. _MulU32:
  44.    move.l 4(sp),d0
  45.    move.l 8(sp),d1
  46.    tst.b _CPU
  47.    beq 1$
  48.    machine mc68020
  49.    mulu.l d1,d0
  50.    machine mc68000
  51.    rts
  52. 1$:
  53.    jsr .mulu#
  54.    rts
  55.  
  56. _DivS32:
  57.    move.l 4(sp),d0
  58.    move.l 8(sp),d1
  59.    tst.b _CPU
  60.    beq 1$
  61.    machine mc68020
  62.    divs.l d1,d0
  63.    machine mc68000
  64.    rts
  65. 1$:
  66.    jsr .divs#
  67.    rts
  68.  
  69. _DivU32:
  70.    move.l 4(sp),d0
  71.    move.l 8(sp),d1
  72.    tst.b _CPU
  73.    beq 1$
  74.    machine mc68020
  75.    divu.l d1,d0
  76.    machine mc68000
  77.    rts
  78. 1$:
  79.    jsr .divu#
  80.    rts
  81.  
  82. CALLM1  MACRO %1
  83.    XREF _LVO%1
  84.    move.l a6,-(sp)
  85.    move.l _MathBase,a6
  86.    jsr _LVO%1(a6)
  87.    move.l (sp)+,a6
  88.    endm
  89.  
  90. CALLM2  MACRO %1
  91.    XREF _LVO%1
  92.    move.l a6,-(sp)
  93.    move.l _MathTransBase,a6
  94.    jsr _LVO%1(a6)
  95.    move.l (sp)+,a6
  96.    endm
  97.  
  98.  
  99. _XAbs:
  100.    tst.b _FPU
  101.    beq 1$
  102.    fabs.s 4(sp),fp0
  103.    fmove.s fp0,d0
  104.    rts
  105. 1$:
  106.    move.l 4(sp),d0
  107.    CALLM1 SPAbs
  108.    rts
  109.  
  110.  
  111. _XFlt:
  112.    tst.b _FPU
  113.    beq 1$
  114.    fmove.l 4(sp),fp0
  115.    fmove.s fp0,d0
  116.    rts
  117. 1$:
  118.    move.l 4(sp),d0
  119.    CALLM1 SPFlt
  120.    rts
  121.  
  122.  
  123. _XFix:
  124.    tst.b _FPU
  125.    beq 1$
  126.    fmove.s 4(sp),fp0
  127.    fmove.l fp0,d0
  128.    rts
  129. 1$:
  130.    move.l 4(sp),d0
  131.    CALLM1 SPFix
  132.    rts
  133.  
  134.  
  135. _XDiv:
  136.    tst.b _FPU
  137.    beq 1$
  138.    fmove.s 8(sp),fp0
  139.    fdiv.s 4(sp),fp0
  140.    fmove.s fp0,d0
  141.    rts
  142. 1$:
  143.    move.l 4(sp),d1
  144.    move.l 8(sp),d0
  145.    CALLM1 SPDiv
  146.    rts
  147.  
  148.  
  149. _XMul:
  150.    tst.b _FPU
  151.    beq 1$
  152.    fmove.s 4(sp),fp0
  153.    fmul.s 8(sp),fp0
  154.    fmove.s fp0,d0
  155.    rts
  156. 1$:
  157.    move.l 4(sp),d1
  158.    move.l 8(sp),d0
  159.    CALLM1 SPMul
  160.    rts
  161.  
  162.  
  163. _XAdd:
  164.    tst.b _FPU
  165.    beq 1$
  166.    fmove.s 4(sp),fp0
  167.    fadd.s 8(sp),fp0
  168.    fmove.s fp0,d0
  169.    rts
  170. 1$:
  171.    move.l 4(sp),d1
  172.    move.l 8(sp),d0
  173.    CALLM1 SPAdd
  174.    rts
  175.    
  176.  
  177. _XCos:
  178.    tst.b _FPU
  179.    beq 1$
  180.    fcos.s 4(sp),fp0
  181.    fmove.s fp0,d0
  182.    rts
  183. 1$:
  184.    move.l 4(sp),d0
  185.    CALLM2 SPCos
  186.    rts
  187.    
  188.  
  189. _XSin:
  190.    tst.b _FPU
  191.    beq 1$
  192.    fsin.s 4(sp),fp0
  193.    fmove.s fp0,d0
  194.    rts
  195. 1$:
  196.    move.l 4(sp),d0
  197.    CALLM2 SPSin
  198.    rts
  199.    
  200.  
  201. _XTan:
  202.    tst.b _FPU
  203.    beq 1$
  204.    ftan.s 4(sp),fp0
  205.    fmove.s fp0,d0
  206.    rts
  207. 1$:
  208.    move.l 4(sp),d0
  209.    CALLM2 SPTan
  210.    rts
  211.  
  212.   
  213. _XAtan:
  214.    tst.b _FPU
  215.    beq 1$
  216.    fatan.s 4(sp),fp0
  217.    fmove.s fp0,d0
  218.    rts
  219. 1$:
  220.    move.l 4(sp),d0
  221.    CALLM2 SPAtan
  222.    rts
  223.  
  224.  
  225. _XSqrt:
  226.    tst.b _FPU
  227.    beq 1$
  228.    fsqrt.s 4(sp),fp0
  229.    fmove.s fp0,d0
  230.    rts
  231. 1$:
  232.    move.l 4(sp),d0
  233.    CALLM2 SPSqrt
  234.    rts
  235.    
  236.